package it.master.cloud.carsharing.eclipse;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import it.unito.json.JSONObject;
import it.unito.json.JSONTokener;

@SuppressWarnings("serial")
public class CarSharingEclipseServlet extends HttpServlet {
	private static final long serialVersionUID = -6455653509373554816L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		InputStream is = req.getInputStream();
		PrintWriter pw = resp.getWriter();
		try {
			// provandola senza client Android, le due righe che
			// seguono non servono...
			// JSONTokener jt = new JSONTokener(is);
			// JSONObject jo = new JSONObject(jt);

			JSONObject rj = new JSONObject();

			// per provarla con/senza client Android, invertire i commenti nelle due
			// righe che seguono!!
			// String request = jo.getString("request"); // per Android
			 String request = "secondTest"; // per test SENZA Android

			rj = createResult();
			
			// per prova Web (senza Android)
			pw.print("Ecco l'oggetto json: " + rj.toString());

			// per prova ANDROID
			// pw.print(rj);
			// pw.flush();

		} catch (Exception e) {
			System.err.println("Error while processing post request.");
			System.err.println(e);
		} finally {
			pw.close();
		}
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

		InputStream is = req.getInputStream();
		PrintWriter pw = resp.getWriter();
		try {
			// provandola senza client Android, le due righe che
			// seguono non servono...
			JSONTokener jt = new JSONTokener(is);
			JSONObject jo = new JSONObject(jt);

			JSONObject rj = new JSONObject();

			// per provarla con/senza client Android, invertire i commenti nelle due
			// righe che seguono!!
			 String request = jo.getString("request"); // per Android
			 //String request = "secondTest"; // per test SENZA Android

			rj = createResult();
			
			// per prova Web (senza Android)
			//pw.print("Ecco l'oggetto json: " + rj.toString());

			// per prova ANDROID
			pw.print(rj);
			pw.flush();

		} catch (Exception e) {
			System.err.println("Error while processing post request.");
			System.err.println(e);
		} finally {
			pw.close();
		}

	}

	private JSONObject createResult() {
		JSONObject rj = null;
		try {
			rj = new JSONObject();
			rj.put("name", "Pippo");
			rj.put("surname", "Topolino");
			rj.put("mail", "p@gamil.com");
			rj.put("phone", "121213");
			rj.put("addressFrom", "Torino");
			rj.put("addressTo", "Milano");
			rj.put("startHour", "9");
			rj.put("arriveHour", "11");
			rj.put("seats", "2");
		} catch (Exception e) {
			System.err.println("Error while querying user");
			System.err.println(e);
		} finally {
		}
		return rj;
	}
}
